#!/bin/bash

# Eagle Blog Database Initialization Script
# 用于 Docker 环境中的数据库初始化

set -e

echo "========================================"
echo "Eagle Blog Database Initialization"
echo "========================================"

# 等待 MySQL 服务启动
echo "[1/4] 等待 MySQL 服务启动..."
until mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "SELECT 1" >/dev/null 2>&1; do
    echo "等待 MySQL 服务..."
    sleep 2
done
echo "✓ MySQL 服务已启动"

# 检查数据库是否存在
echo "[2/4] 检查数据库..."
if mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "USE eagle_blog" 2>/dev/null; then
    echo "✓ 数据库 eagle_blog 已存在"
    echo "是否要重新初始化数据库? (y/N)"
    read -r response
    if [[ ! "$response" =~ ^[Yy]$ ]]; then
        echo "跳过数据库初始化"
        exit 0
    fi
    echo "删除现有数据库..."
    mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "DROP DATABASE IF EXISTS eagle_blog"
fi

# 执行初始化 SQL
echo "[3/4] 执行数据库初始化..."
mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" < /docker-entrypoint-initdb.d/init.sql

# 验证初始化结果
echo "[4/4] 验证初始化结果..."
mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "USE eagle_blog; SHOW TABLES;"

echo "========================================"
echo "数据库初始化完成!"
echo "========================================"
echo "数据库信息:"
echo "- 数据库名: eagle_blog"
echo "- 主机: $MYSQL_HOST:$MYSQL_PORT"
echo "- 用户: $MYSQL_USER"
echo ""
echo "默认测试账户:"
echo "- 用户名: admin, 密码: 123456"
echo "- 用户名: test, 密码: 123456"
echo ""
echo "数据库表:"
mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "USE eagle_blog; SHOW TABLES;" | tail -n +2 